
namespace Xeralabs.Core.Entities.Internal
{
    /// <summary>
    /// Clase abstracta de la que derivan todas las factorias de entidades de la simulacion.
    /// </summary>
    public abstract class BaseFactory
    {
        private byte _objectType;
        /// <summary>
        /// Devuelve el tipo de objeto registrado en Xeralabs.GDESK.Entities.GUID64
        /// </summary>
        protected byte ObjectType { get { return _objectType; } }

        /// <summary>
        /// Constructor protegido. Obtiene un valor para la propiedad <see cref="ObjectType"/> a partir de <see cref="Xeralabs.Core.Entities.GUID64.GetObjectTypeID()"/>.
        /// </summary>
        protected BaseFactory()
        {
            this._objectType = GUID64.GetObjectTypeID();
        }
    }
}
